/**
 * @author liangxi
 * @since 2024/4/10
 */

#ifndef DESIGNPATTERN_SOLDOUTSTATE_H
#define DESIGNPATTERN_SOLDOUTSTATE_H

#include <memory>
#include "../State.h"
#include <string>


class GumballMachine;

class SoldOutState : public State {

public:
    SoldOutState() = default;

    GumballMachine *getMGumballMachine() const;

    void setMGumballMachine(GumballMachine *mGumballMachine);

    void insertQuarter() override;

    void ejectQuarter() override;

    void turnCrank() override;

    void dispense() override;

    std::string toString();

private:
    GumballMachine *mGumballMachine{nullptr};
};



// GumballState

#endif //DESIGNPATTERN_SOLDOUTSTATE_H
